/**
 * @swagger
 * /api/room/complete-analysis:
 *   get:
 *     tags:
 *       - 学校房屋管理
 *     summary: 获取学校房屋管理综合分析报告
 *     description: 提供学校房屋管理的全维度分析报告，包括基础统计、效率指标、对比分析、现状评估和综合评价，帮助了解房屋资源配置和利用情况
 *     responses:
 *       200:
 *         description: 成功获取完整分析数据
 *         content:
 *           application/json:
 *             schema:
 *               type: object
 *               properties:
 *                 code:
                   type: integer
                   example: 200
                   description: 响应状态码
                 message:
                   type: string
                   example: "完整性分析获取成功"
                   description: 响应消息
 *                 data:
                   type: object
                   properties:
                     basicStats:
                       type: object
                       description: 学校房屋基础统计数据，包含房间、建筑、面积和土地的基本信息
                       properties:
                         roomStatistics:
                           type: object
                           description: 学校房间统计信息，包含总数量和公私分类数据
                           properties:
                             totalRoomCount:
                               type: number
                               description: 学校内所有房间的总数量（间）
                               example: 1250
                             publicRoomCount:
                               type: number
                               description: 学校内公共性质房间的数量（间）
                               example: 280
                             privateRoomCount:
                               type: number
                               description: 学校内私人性质房间的数量（间）
                               example: 970
                             publicRoomPercentage:
                               type: string
                               description: 学校内公共房间占总房间数量的百分比（%）
                               example: "22.40%"
                         buildingStatistics:
                           type: object
                           description: 学校内建筑物统计信息，包含建筑数量和房间分布
                           properties:
                             totalBuildingCount:
                               type: number
                               description: 学校内所有建筑物的总数量（栋）
                               example: 45
                             averageRoomsPerBuildingCount:
                               type: string
                               description: 学校内每栋建筑物平均包含的房间数量（间/栋）
                               example: "27.78"
                         areaStatistics:
                           type: object
                           description: 学校内面积统计信息，包含各类面积数据和使用效率
                           properties:
                             totalBuildingAreaSquareMeters:
                               type: number
                               description: 学校内所有建筑物的建筑面积总和（平方米）
                               example: 125000.50
                             totalUsageAreaSquareMeters:
                               type: number
                               description: 学校内所有建筑物的实际使用面积总和（平方米）
                               example: 98500.25
                             totalConstructionAreaSquareMeters:
                               type: number
                               description: 学校内所有建筑物的建设面积总和（平方米）
                               example: 135000.75
                             usageAreaPercentage:
                               type: string
                               description: 学校内建筑使用面积占建筑面积的百分比（%）
                               example: "78.80%"
                         landStatistics:
                           type: object
                           description: 学校土地使用统计信息，包含总面积和办公用地面积
                           properties:
                             totalAreaAcres:
                               type: number
                               description: 学校所有土地的总面积（亩）
                               example: 180.5
                             officeAreaAcres:
                               type: number
                               description: 学校办公用途土地面积（亩）
                               example: 120.3
                             totalAreaSquareMeters:
                               type: string
                               description: 学校所有土地的总面积（平方米）
                               example: "120333.35"
 *                     efficiencyMetrics:
                       type: object
                       description: 学校房屋管理效率指标分析
                       properties:
                         spaceUtilizationMetrics:
                           type: object
                           description: 学校空间利用效率分析
                           properties:
                             buildingToUsageAreaPercentage:
                               type: string
                               description: 学校建筑面积与使用面积的利用率（%）
                               example: "80.00"
                         roomEfficiencyMetrics:
                           type: object
                           description: 学校房间配置效率相关指标
                           properties:
                             averageRoomsPerBuilding:
                               type: string
                               description: 每栋建筑物的平均房间数量（间/栋）
                               example: "27.78"
                             roomAreaDensity:
                               type: string
                               description: 房间面积密度，即每平方米建筑面积对应的房间数量（间/平方米）
                               example: "0.0012"
                             usableAreaRatio:
                               type: string
                               description: 建筑使用面积占总建筑面积的比例（%）
                               example: "85.60%"
                         landEfficiencyMetrics:
                           type: object
                           description: 学校土地利用效率分析
                           properties:
                             buildingDensityPercentage:
                               type: string
                               description: 学校建筑密度（建筑面积占土地面积的百分比）
                               example: "123.00"
                             floorAreaRatio:
                               type: string
                               description: 学校容积率 - 总建筑面积与土地面积的比值，反映土地开发强度
                               example: "1.45"
                             roomDensityPerAcre:
                               type: string
                               description: 学校每亩土地的房间密度（间/亩）
                               example: "3.32"
 *                     comparativeAnalysis:
 *                       type: object
 *                       description: 学校房屋管理对比分析，包含面积、房间数量、房间面积密度等数据的比较
 *                       properties:
 *                         areaComparisonAnalysis:
 *                           type: array
 *                           description: 学校面积对比分析数据
 *                           items:
 *                             type: object
 *                             properties:
 *                               comparisonType:
 *                                 type: string
 *                                 description: 学校面积对比类型说明
 *                                 example: "建筑面积 vs 使用面积"
 *                               comparisonValues:
 *                                 type: object
 *                                 description: 学校面积对比数值
 *                                 properties:
 *                                   buildingAreaSquareMeters:
 *                                     type: number
 *                                     description: 学校建筑面积数值（平方米）
 *                                     example: 123456.78
 *                                   usageAreaSquareMeters:
 *                                     type: number
 *                                     description: 学校使用面积数值（平方米）
 *                                     example: 98765.43
 *                               areaDifferenceSquareMeters:
 *                                 type: string
 *                                 description: 学校面积差值（平方米）
 *                                 example: "24691.35"
 *                               utilizationEfficiencyPercentage:
 *                                 type: string
 *                                 description: 学校面积利用效率百分比（%）
 *                                 example: "80.00%"
 *                         roomComparisonAnalysis:
 *                           type: object
 *                           description: 学校房间对比分析数据
 *                           properties:
 *                             publicVsPrivateRoomAnalysis:
 *                               type: object
 *                               description: 学校公共房间与私人房间对比分析
 *                               properties:
 *                                 publicRoomCount:
 *                                   type: integer
 *                                   description: 学校公共房间数量（间）
 *                                   example: 112
 *                                 privateRoomCount:
 *                                   type: integer
 *                                   description: 学校私人房间数量（间）
 *                                   example: 388
 *                                 publicRoomPercentage:
                                   type: string
                                   description: 学校公共房间占比百分比（%）
                                   example: "22.40%"
*                         currentStatus:
*                           type: object
*                           description: 学校的当前房屋和土地开发利用的实际状态指标
*                           properties:
*                             floorAreaRatio:
*                               type: string
*                               description: 学校的当前土地的容积率（总建筑面积与土地面积的比值）
*                               example: "1.12"
*                             buildingDensity:
*                               type: string
*                               description: 学校的当前土地的建筑密度（建筑面积占土地面积的百分比）
*                               example: "103.85"
 *                     overallAssessment:
 *                       type: object
 *                       description: 学校房屋管理综合评估报告，汇总各项关键指标的整体表现
 *                       properties:
 *                         corePerformanceMetrics:
 *                           type: object
 *                           description: 学校房屋管理核心绩效指标汇总
 *                           properties:
 *                             spaceUtilizationPercentage:
 *                               type: string
 *                               description: 学校建筑空间整体利用效率百分比（%）
 *                               example: "78.80%"
 *                             landUtilizationPercentage:
 *                               type: string
 *                               description: 学校土地资源整体利用效率百分比（%）
 *                               example: "103.85%"
 *                             roomConfigurationPercentage:
 *                               type: string
 *                               description: 学校公共房间在整体房间配置中的占比（%）
 *                               example: "22.40%"
 *                             buildingEfficiencyRatio:
 *                               type: string
 *                               description: 学校建筑物房间配置效率（间/栋）
 *                               example: "27.78"


 *       500:
 *         description: 服务器内部错误
 */
const { query } = require('../../../lib/db')
const { success, error, handleResponse } = require('../../../lib/response')
const { withCors } = require('../../../lib/cors')

/**
 * 处理房屋完整分析请求
 * @param {Object} req - 请求对象
 * @param {Object} res - 响应对象
 */
async function handler(req, res) {

  try {
    const sql = `
      SELECT 
        SUM(ZFJJS) as totalRooms,
        SUM(GYFJS) as publicRooms,
        SUM(LDS) as buildingCount,
        SUM(XGBGYFTDSM) as officeLandAcres,
        SUM(TJTDMS) as totalLandAcres,
        SUM(XXBXZJZMJ) as totalBuildingArea,
        SUM(XXBXZSYYMJ) as totalUsageArea,
        SUM(ZJZMJ) as totalConstructionArea
      FROM wd_zcgk_bxzyhz
    `

    const result = await query(sql)
    
    if (!result || result.length === 0) {
      return handleResponse(res, error('暂无房产数据', 404))
    }

    const data = result[0]
    const totalRooms = parseInt(data.totalRooms) || 0
    const publicRooms = parseInt(data.publicRooms) || 0
    const privateRooms = totalRooms - publicRooms
    const buildingCount = parseInt(data.buildingCount) || 0
    const officeLandAcres = parseFloat(data.officeLandAcres) || 0
    const totalLandAcres = parseFloat(data.totalLandAcres) || 0
    const totalBuildingArea = parseFloat(data.totalBuildingArea) || 0
    const totalUsageArea = parseFloat(data.totalUsageArea) || 0
    const totalConstructionArea = parseFloat(data.totalConstructionArea) || 0

    // 土地面积转换
    const acreToSquareMeter = 666.67
    const totalLandSquareMeters = totalLandAcres * acreToSquareMeter

    // 综合分析结果
    const completeAnalysis = {
      // 1. 基础统计数据
      basicStats: {
        roomStatistics: {
          totalRoomCount: totalRooms,
          publicRoomCount: publicRooms,
          privateRoomCount: privateRooms,
          publicRoomPercentage: totalRooms > 0 ? ((publicRooms / totalRooms) * 100).toFixed(2) : 0
        },
        buildingStatistics: {
          totalBuildingCount: buildingCount,
          averageRoomsPerBuilding: buildingCount > 0 ? (totalRooms / buildingCount).toFixed(2) : 0
        },
        areaStatistics: {
          totalBuildingAreaSquareMeters: totalBuildingArea,
          totalUsageAreaSquareMeters: totalUsageArea,
          totalConstructionAreaSquareMeters: totalConstructionArea,
          usageAreaPercentage: totalBuildingArea > 0 ? ((totalUsageArea / totalBuildingArea) * 100).toFixed(2) : 0
        },
        landStatistics: {
          totalAreaAcres: totalLandAcres,
          officeAreaAcres: officeLandAcres,
          totalAreaSquareMeters: totalLandSquareMeters.toFixed(2)
        }
      },

      // 2. 效率指标
      efficiencyMetrics: {
        spaceUtilizationMetrics: {
          buildingToUsageAreaPercentage: totalBuildingArea > 0 ? ((totalUsageArea / totalBuildingArea) * 100).toFixed(2) : 0
        },
        roomEfficiencyMetrics: {
          averageRoomsPerBuilding: buildingCount > 0 ? (totalRooms / buildingCount).toFixed(2) : 0,
          roomAreaDensity: totalBuildingArea > 0 ? (totalRooms / totalBuildingArea).toFixed(6) : 0,
          usableAreaRatio: totalBuildingArea > 0 ? ((totalUsageArea / totalBuildingArea) * 100).toFixed(2) + '%' : '0%'
        },
        landEfficiencyMetrics: {
          buildingCoverageRatio: totalLandSquareMeters > 0 ? ((totalBuildingArea / totalLandSquareMeters) * 100).toFixed(2) + '%' : '0%',
          floorAreaRatio: totalLandSquareMeters > 0 ? (totalConstructionArea / totalLandSquareMeters).toFixed(2) : 0,
          roomDensityPerAcre: totalLandAcres > 0 ? (totalRooms / totalLandAcres).toFixed(2) : 0
        }
      },

      // 3. 对比分析
      comparativeAnalysis: {
        areaComparisonAnalysis: [
          {
            comparisonType: '建筑面积 vs 使用面积',
            comparisonValues: { 
              buildingAreaSquareMeters: totalBuildingArea, 
              usageAreaSquareMeters: totalUsageArea 
            },
            areaDifferenceSquareMeters: (totalBuildingArea - totalUsageArea).toFixed(2),
            utilizationEfficiencyPercentage: totalBuildingArea > 0 ? ((totalUsageArea / totalBuildingArea) * 100).toFixed(2) + '%' : '0%'
          },
          {
            comparisonType: '总建筑面积 vs 学校建筑面积',
            comparisonValues: { 
              totalConstructionAreaSquareMeters: totalConstructionArea, 
              schoolBuildingAreaSquareMeters: totalBuildingArea 
            },
            areaDifferenceSquareMeters: (totalConstructionArea - totalBuildingArea).toFixed(2),
            utilizationEfficiencyPercentage: totalConstructionArea > 0 ? ((totalBuildingArea / totalConstructionArea) * 100).toFixed(2) + '%' : '0%'
          }
        ],
        roomComparisonAnalysis: {
          publicVsPrivateRoomAnalysis: {
            publicRoomCount: publicRooms,
            privateRoomCount: privateRooms,
            publicRoomPercentage: totalRooms > 0 ? ((publicRooms / totalRooms) * 100).toFixed(2) + '%' : '0%'
          }
        }
      },

      // 4. 当前状态的真实数据
      currentStatus: {
        floorAreaRatio: totalLandSquareMeters > 0 ? (totalConstructionArea / totalLandSquareMeters).toFixed(2) : 0,
        buildingDensity: totalLandSquareMeters > 0 ? ((totalBuildingArea / totalLandSquareMeters) * 100).toFixed(2) : 0
      },

      // 5. 综合评估 - 仅包含基础统计数据
      overallAssessment: {
        corePerformanceMetrics: {
          spaceUtilizationPercentage: totalBuildingArea > 0 ? ((totalUsageArea / totalBuildingArea) * 100).toFixed(2) + '%' : '0%',
          landUtilizationPercentage: totalLandSquareMeters > 0 ? ((totalBuildingArea / totalLandSquareMeters) * 100).toFixed(2) + '%' : '0%',
          roomConfigurationPercentage: totalRooms > 0 ? ((publicRooms / totalRooms) * 100).toFixed(2) + '%' : '0%',
          buildingEfficiencyRatio: buildingCount > 0 ? (totalRooms / buildingCount).toFixed(2) : '0'
        }
        // 移除了预测性的评分和评级系统
      },

      // 移除了预测性的改进建议部分


    }

    return handleResponse(res, success(completeAnalysis, '完整房产分析报告获取成功'))

  } catch (err) {
    console.error('综合分析接口错误:', err)
    return handleResponse(res, error('服务器内部错误', 500))
  }
}

export default withCors(handler, ['GET'])